footer ์œ„์น˜

7/29/2025

๋ฌธ์ œ ์ƒํ™ฉ

๋ธ”๋กœ๊ทธ ๊ธ€์„ ์กฐํšŒํ•  ๋•Œ footer๊ฐ€ ๊ธ€ ํ•œ๊ฐ€์šด๋ฐ์— ์œ„์น˜ํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์กฐํšŒ ํŽ˜์ด์ง€์—์„œ๋งŒ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ๊ฒฌ๋œ๋‹ค.

์›์ธ

<article
  className="h-190 ml-20 mr-25 mt-5 prose prose-lg prose-blog max-w-none"
  dangerouslySetInnerHTML={{ __html: contentHtml }}
></article>

์ด๋ ‡๊ฒŒ ๊ณ ์ • ๋†’์ด๋ฅผ ์ค˜์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค.

//main์˜ layout
<>
  <Navbar />
  <div className="flex-grow">{children}</div>
  <Footer />
</>

//์ด๊ฒƒ์˜ ๋ถ€๋ชจ๊ฐ€ ๋˜๋Š” root layout์—์„œ๋Š”
<html>
  <body
    className={`${nanumGothic.className} 
    antialiased flex flex-col max-w-screen min-h-screen
    overflow-y-scroll `}
  >
    {children}
  </body>
</html>

main layout์„ ๋ณด๋ฉด ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ๋‹ด์„ div์— flex-grow๋ฅผ ์คฌ๋‹ค. root layout์„ ๋ณด๋ฉด body์˜ ๋†’์ด๋Š” ์Šคํฌ๋ฆฐ ๋†’์ด๋กœ ์ง€์ •ํ–ˆ๋‹ค. (์—ฌ๊ธฐ๊นŒ์ง€๋Š” ํ‹€๋ฆฐ๊ฒŒ ์—†์Œ)

flex-grow์˜ ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•

flex-grow ๋ฅผ ๊ฐ€์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ๋จผ์ € ์ž์‹ ์š”์†Œ๋“ค์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ ,
์ „์ฒด ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„ - ์ž์‹ ์š”์†Œ๋“ค์˜ ํ•ฉ = ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„
๊ณ„์‚ฐํ•œ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์„ ์ž๊ธฐ๊ฐ€ ๊ฐ€์ ธ๊ฐ„๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด 1000px์—์„œ Naver์™€ Footer๊ฐ€ 50์”ฉ ์ฐจ์ง€ํ•˜๊ณ  ์ž์‹์˜ ํฌ๊ธฐ๊ฐ€ ์ดํ•ฉ 500์ด๋ผ๊ณ  ํ•˜๋ฉด 1000 - 50 - 50 - 500 = 400์˜ ๋‚˜๋จธ์ง€๊ฐ€ ์ƒ๊ธฐ๊ณ ,
์ด ๋‚˜๋จธ์ง€๋ฅผ flex-grow ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ€์ ธ๊ฐ„๋‹ค.
๊ทธ๋ž˜์„œ ์ž์‹ ์š”์†Œ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋„ ์ตœ์†Œ ๋†’์ด๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ž์‹์—๊ฒŒ ๊ณ ์ •๋†’์ด๋ฅผ ์ฃผ๊ฒŒ๋˜๋ฉด, flex-grow๊ฐ€ ์‚ฌ์ „์— ๊ณ„์‚ฐ์„ ํ•ด๋ฒ„๋ฆฐ๋‹ค. ์‹ค์ œ ํ™”๋ฉด์— ๋ณด์—ฌ์งˆ ๋‚ด์šฉ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ css์— ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” ์ˆซ์ž๋กœ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ์„ ํ•ด๋ฒ„๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์— ๋งž๊ฒŒ ์ž๊ธฐ ๋†’์ด๋ฅผ ๊ณ„์‚ฐํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์‹ค์ƒ flex-grow๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ž์‹์—๊ฒŒ ๊ณ ์ •ํฌ๊ธฐ๋ฅผ ์ฃผ์ง€ ์•Š๋Š”๊ฒŒ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•.

ํ•ด๊ฒฐ

๊ฐ„๋‹จํžˆ ๊ณ ์ •๋†’์ด๋ฅผ ๋นผ๊ณ , ๋ถ€๋ชจ์— ๋งˆ์ง„์„ ์ค˜์„œ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ–ˆ๋‹ค.